import logging.handlers
import logging


def init_config(filename, when='midnight', interval=1, backup_count=7):
    # 1.创建日志器对象
    logger = logging.getLogger()

    # 2.设置日志打印机别
    logger.setLevel(logging.DEBUG)

    # 3.1 创建 输出到控制台 处理对象
    st = logging.StreamHandler()

    # 3.2 创建 输出到日志文件 处理对象

    fh = logging.handlers.TimedRotatingFileHandler(filename=filename, when=when, interval=interval,
                                                   backupCount=backup_count, encoding='utf-8')

    # when字符串，指定日志切分间隔时间的单位。午夜:凌晨:12点。
    # #间隔是间隔时间单位的个数,指等待多少个时后继续进行日志记录
    # backupCount是保留日志文件的个数

    # 4.创建日志信息格式
    fmt = '%(asctime)s %(levelname)s [%(filename)s(%(funcName)s:%(lineno)d] - %(message)s'
    formatter = logging.Formatter(fmt)
    # 5.1 日志信息格式 设置给 控制台处理器
    st.setFormatter(formatter)
    # 5.2 日志信息格式 设置给 日志文件处理器
    fh.setFormatter(formatter)
    # 6.1 给日志器对象 添加 控制台处理器
    logger.addHandler(st)
    # 6.2 给日志器对象 添加 日志文件处理器
    logger.addHandler(fh)


# if __name__ == '__main__':
#     init_config('../log/sh_25.log', interval=3, backup_count=5)
#     logging.debug('debug...')
